/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Contabilidad;

import CONTROLES.Conexion;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Administrador
 */
public class ControlCuentaPlanContable {

    public ControlCuentaPlanContable(){

    }
    
    public boolean registrarCuentaPlan(CuentaPlanContable CuentaPlan)
    {
       Conexion conection = new Conexion();
       try
       {
          Connection conectado = conection.getConexion();
          PreparedStatement ps = conectado.prepareStatement("INSERT INTO cuenta_plan_contable(codigo, nombre, grupo_balance) VALUES ('"+CuentaPlan.getCodigo()+"','"+CuentaPlan.getNombre()+"','"+CuentaPlan.getGrupo()+"')");
          ps.executeUpdate();
          ps.close();
        } catch (SQLException em) {
            System.out.println("error al insertar La cuenta Contable en la base de datos "+em.getLocalizedMessage() );
            return false;
          }
       return true;
     }

     public CuentaPlanContable getCuentaContable(int id){
       Conexion conection = new Conexion();
       CuentaPlanContable cuenta= new CuentaPlanContable();
    try{
            Connection conectado = conection.getConexion();

            PreparedStatement psc = conectado.prepareStatement("select * from cuenta_plan_contable where codigo = '"+id+"' ");
            ResultSet respEmp = psc.executeQuery();
            if(respEmp.next()){
                cuenta.setCodigo(respEmp.getInt(1));
                cuenta.setNombre(respEmp.getString(2));
                cuenta.setGrupo(respEmp.getString(3));
            }
        }
            catch (SQLException e){
            System.out.println("error al recuperar la Cuenta Contable " + e.getLocalizedMessage());
        }

        return cuenta;
    }

    public ArrayList<CuentaPlanContable> getListaCuentas() {

        ArrayList<CuentaPlanContable> listaCuentas = getCuentasContables();

        return listaCuentas;
    }

    public String[] nombresCuentas()
    {
        ArrayList<CuentaPlanContable> listaC = getListaCuentas();
        String lista[]=new String[listaC.size()];
        CuentaPlanContable cuenta = new CuentaPlanContable();
        for(int i=0; i<listaC.size(); i++ ){
            cuenta = listaC.get(i);
            lista[i]=cuenta.getCodigo()+"-"+cuenta.getNombre();
        }
    return lista;

    }

    private ArrayList<CuentaPlanContable> getCuentasContables(){
       Conexion conection = new Conexion();
       ArrayList<CuentaPlanContable> res = new ArrayList<CuentaPlanContable>();
       CuentaPlanContable cuenta;
    try{
            Connection conectado = conection.getConexion();

            PreparedStatement psc = conectado.prepareStatement("select * from cuenta_plan_contable ORDER BY codigo ASC");
            ResultSet respEmp = psc.executeQuery();
            while (respEmp.next()){
                cuenta= new CuentaPlanContable();
                cuenta.setCodigo(respEmp.getInt(1));               
                cuenta.setNombre(respEmp.getString(2));
                cuenta.setGrupo(respEmp.getString(3));
                
                res.add(cuenta);
            }
        }
            catch (SQLException e){
            System.out.println("error al recuperar la lista de Cuentas Contables " + e.getLocalizedMessage());
        }

        return res;
    }

    public String[] nombresCuentasActivo()
    {
        ArrayList<CuentaPlanContable> listaC = getCuentasContablesActivoFijo();
        String lista[]=new String[listaC.size()];
        CuentaPlanContable cuenta = new CuentaPlanContable();
        for(int i=0; i<listaC.size(); i++ ){
            cuenta = listaC.get(i);
            lista[i]=cuenta.getCodigo()+"-"+cuenta.getNombre();
        }
    return lista;

    }
    private ArrayList<CuentaPlanContable> getCuentasContablesActivoFijo(){
       Conexion conection = new Conexion();
       ArrayList<CuentaPlanContable> res = new ArrayList<CuentaPlanContable>();
       CuentaPlanContable cuenta;
    try{
            Connection conectado = conection.getConexion();

            PreparedStatement psc = conectado.prepareStatement("select * from cuenta_plan_contable WHERE codigo >= '1211' AND codigo <= 1220 ORDER BY codigo ASC");
            ResultSet respEmp = psc.executeQuery();
            while (respEmp.next()){
                cuenta= new CuentaPlanContable();
                cuenta.setCodigo(respEmp.getInt(1));
                cuenta.setNombre(respEmp.getString(2));
                cuenta.setGrupo(respEmp.getString(3));

                res.add(cuenta);
            }
        }
            catch (SQLException e){
            System.out.println("error al recuperar la lista de Cuentas Contables " + e.getLocalizedMessage());
        }

    return res;
    }

    public static void main (String args [])
    {
        ControlCuentaPlanContable con = new ControlCuentaPlanContable();
//        System.out.println("empleo... "+con.sacarEmpleo().getNombreEmpleo());
    }


}
